#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cctype>
using namespace std;
string analyzeWords(string input_str) {
    if (input_str.empty() || count(input_str.begin(), input_str.end(), ' ') == 0) {
        return "Мало данных для анализа";
    }
    vector<string> words;
    string word = "";
    for (char c : input_str) {
        if (c == ' ') {
            if (!word.empty()) {
                words.push_back(word);
                word = "";
            }
        } else {
            word += c;
        }
    }
    if (!word.empty()) {
        words.push_back(word);
    }
    int total_words = words.size();
    int russian_cap_words = 0;
    int latin_symbol_words = 0;
    int short_words = 0;
    int hyphen_words = 0;
    string longest_word = *max_element(words.begin(), words.end(), [](const string& a, const string& b){ return a.size() < b.size(); });
    int longest_word_length = longest_word.size();
    for (const string& w : words) {
        if (isupper(w[0]) && w[0] >= 1040 && w[0] <= 1071) {
            russian_cap_words++;
        }
        if (any_of(w.begin(), w.end(), [](char c){ return isalpha(c) && c > 127; })) {
            latin_symbol_words++;
        }
        if (w.size() <= 3) {
            short_words++;
        }
        if (w.find('-') != string::npos) {
            hyphen_words++;
        }
    }
    return "Кол-во слов: " + to_string(total_words) + "\nКол-во слов с заглавной кириллической буквы: " + to_string(russian_cap_words) + "\nКол-во слов содержащих латинский символ: " + to_string(latin_symbol_words) + "\nКол-во слов не превышающих 3 символа: " + to_string(short_words) + "\nКол-во слов в составе которых имеется дефис: " + to_string(hyphen_words) + "\n\nСамое длинное слово: " + longest_word + "\nДлина слова: " + to_string(longest_word_length);
}
int main() {
    string input;
    cout << "Введите слова разделенные пробелом: ";
    getline(cin, input);
    cout << analyzeWords(input) << endl;
    return 0;
}
